import { defineStore } from "pinia";

export const useGoodsStore = defineStore({
    id:'goods',
    state:()=>({
        //此处用来放置各类变量
        //创建一个购物车数组
        cartData:[],
        data:[], //临时存储数据的变量
        orderData:[], // 创建订单数组变量


    }),
    actions:{
        //此处用来放置各类方法
        //创建一个添加购物车的方法
        cartAdd(val){
            let temp = JSON.parse(sessionStorage.getItem('cart'))
            
            //如果我们从session里面拿到的数据是空的，说明购物车是空的
            if(temp == null){
                this.cartData.push(val)
            }else{
                this.cartData = temp
                this.data = this.cartData.find(v=>v.id==val.id)
                if(this.data){
                    this.data.num += val.num
                    this.data.total = this.data.num * this.data.onlineprice
                }else{
                    //把传递过来的商品加入到购物车数组中
                    this.cartData.push(val)
                }
            }
            //把购物车数据加入到session中，保证数据在刷新时不会被丢失
            sessionStorage.setItem("cart",JSON.stringify(this.cartData))
        },
        orderAdd(val){
            //定义一个中间数组，用来存储从session中获得的订单数据
            const temp = JSON.parse(sessionStorage.getItem('order'))
            //如果temp是空的，直接把数据插入订单数组中，否则，要在原订单数组后面插入
            if(temp==null){
                this.orderData.push(val)
            }else{
                this.orderData = temp //把原订单数据放入orderData中,确保刷新后数据不会消失
                this.orderData.push(val) 
            }
            //最后把订单数据更新到session中
            sessionStorage.setItem('order',JSON.stringify(this.orderData))
           
        }
    }
})